#define _CRT_SECURE_NO_WARNINGS 1
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
const int N = 2e5 + 10;
ll n, c, d;
ll a[N], s[N];

bool check(ll k) {
	ll sum = s[min(k + 1, n)] * (d / (k + 1));
	sum += s[min(d % (k + 1), n)];
	return sum >= c;
}

void solve() {
	cin >> n >> c >> d;
	for (int i = 1; i <= n; i++) cin >> a[i];
	sort(a + 1, a + n + 1, greater<ll>());
	for (int i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];
	if (a[1] * d < c) {
		cout << "Impossible" << endl;
		return;
	}
	if (s[min(d, n)] >= c) {
		cout << "Infinity" << endl;
		return;
	}
	ll l = 0, r = d;
	while (l < r) {
		int mid = (l + r + 1) >> 1;
		if (check(mid)) l = mid;
		else r = mid - 1;
	}
	cout << r << endl;
}

int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int t; cin >> t;
	while (t--) {
		solve();
	}
	return 0;
}